﻿using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Carozos.BE;

namespace Carozos.Test
{
    [TestClass]
    public class PedidoTest
    {
        [TestMethod]
        public void PedidoCodigoVacio()
        {
            string rpta = "";
            PedidoBE p = new PedidoBE();
            if (p.codigo == 1)
                rpta = "Pedido con código";
            else
                rpta = "Pedido sin código";

            Assert.AreEqual("Pedido con código", rpta);
        }

        [TestMethod]
        public void PedidoCodigoConValor()
        {
            string rpta = "";
            PedidoBE p = new PedidoBE(1);
            if (p.codigo == 1)
                rpta = "Pedido con código";
            else
                rpta = "Pedido sin código";

            Assert.AreEqual("Pedido con código", rpta);
        }

        [TestMethod]
        public void PedidoSinProveedor()
        {
            string rpta = "";
            PedidoBE p = new PedidoBE(1,null);
            ProveedorBE pro = new ProveedorBE("ABC","ABC");
            if (p.proveedor == pro)
                rpta = "Pedido con proveedor ABC";
            else
                rpta = "Pedido sin proveedor";

            Assert.AreEqual("Pedido con proveedor ABC", rpta);
        }

        [TestMethod]
        public void PedidoConProveedor()
        {
            string rpta = "";
            ProveedorBE pro = new ProveedorBE("Sra Rosa", "Sra Rosa");
            PedidoBE p = new PedidoBE(1, pro);
            
            if (p.proveedor == pro)
                rpta = "Pedido con proveedor Sra Rosa";
            else
                rpta = "Pedido sin proveedor";

            Assert.AreEqual("Pedido con proveedor Sra Rosa", rpta);
        }

        [TestMethod]
        public void DetallePedidoSinCantidad()
        {
            string rpta = "";
            PedidoBE pe = new PedidoBE();
            InsumoBE ins = new InsumoBE(1);

            DetallePedidoBE det = new DetallePedidoBE(pe, ins,0,0);

            if (det.cantidad > 0)
                rpta = "Detalle con Cantidad";
            else
                rpta = "Detalle sin Cantidad";

            Assert.AreEqual("Detalle con Cantidad", rpta);
        }

        [TestMethod]
        public void DetallePedidoConCantidad()
        {
            string rpta = "";
            PedidoBE pe = new PedidoBE();
            InsumoBE ins = new InsumoBE(1);

            DetallePedidoBE det = new DetallePedidoBE(pe, ins, 20, 1);

            if (det.cantidad > 0)
                rpta = "Detalle con Cantidad";
            else
                rpta = "Detalle sin Cantidad";

            Assert.AreEqual("Detalle con Cantidad", rpta);
        }

        [TestMethod]
        public void DetallePedidoSinPrecioUnitario()
        {
            string rpta = "";
            PedidoBE pe = new PedidoBE();
            InsumoBE ins = new InsumoBE(1);

            DetallePedidoBE det = new DetallePedidoBE(pe, ins, 20, 0);

            if (det.precioUnitario > 0)
                rpta = "Detalle con Precio Unitario";
            else
                rpta = "Detalle sin Precio Unitario";

            Assert.AreEqual("Detalle con Precio Unitario", rpta);
        }

        [TestMethod]
        public void DetallePedidoConPrecioUnitario()
        {
            string rpta = "";
            PedidoBE pe = new PedidoBE();
            InsumoBE ins = new InsumoBE(1);

            DetallePedidoBE det = new DetallePedidoBE(pe, ins, 20, Convert.ToDecimal(0.6));

            if (det.precioUnitario > 0)
                rpta = "Detalle con Precio Unitario";
            else
                rpta = "Detalle sin Precio Unitario";

            Assert.AreEqual("Detalle con Precio Unitario", rpta);
        }


    }
}
